﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.ComponentModel;
using System.ServiceModel;
using Sinacor.Infra.UI.Common;
using Sinacor.Infra.UI.Security.Services;
using Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira;
namespace Sinacor.UI.Bovespa.Ordens.Communication
{
    public class Carteira: BaseCommunication
    {
        #region Construtor
              public Carteira(SessionInformation session)
                : base(session) 
                  {
                
                  }
        #endregion

        #region ValidarCarteriaMercado
      public bool ValidarCarteiraMercado(Model.Parameter.ValidarCarteiraMercadoRequest pCarteiraMercado)
      {
          ICarteira Carteira = null;
          bool response;

          try
          {
              using (ServiceInstance<ICarteira> serviceManager = new ServiceInstance<ICarteira>())
              {
                  Carteira = serviceManager.TryGetInstance(this.Session);
                  response = Carteira.ValidarCarteiraMercado(new Translator.TranslatorValidarCarteiraMercadoRequest().Translate(pCarteiraMercado));                   
              }
          }
          catch (Exception ex)
          {
              HandleFault(ex);
              return false;
          }

          return response;
      }
      #endregion

        #region ConsultarMenorCarteira
      public Model.CarteiraMercado ConsultarMenorCarteira(Model.Parameter.ConsultarMenorCarteiraRequest pCarteiraMercado)
      {
          ICarteira Carteira = null;
          CarteiraResponse response = null;

          try
          {
              using (ServiceInstance<ICarteira> serviceManager = new ServiceInstance<ICarteira>())
              {
                  Carteira = serviceManager.TryGetInstance(this.Session);
                  response = Carteira.ConsultarMenorCarteira(new Translator.TranslatorConsultarMenorCarteiraRequest().Translate(pCarteiraMercado));
              }

              return (new Translator.TranslatorCarteiraMercado().Translate(response));
          }
          catch (Exception ex)
          {
              HandleFault(ex);
              return null;
          }
      }
      #endregion



    }
}
